package com.xbongbong.saas.enums.base;

import lombok.Getter;

import java.util.Arrays;
import java.util.List;

/**
 * 回款计划字段attr基础枚举
 * 如果非经销商、经销商类模板都有的字段，则需在该基础枚举内维护attr
 * @author zcp
 */
@Getter
public enum PaymentTaskBaseEnum {
    /**
     * 基本信息
     */
    BASE_INFO("other_1"),
    //客户名称(客户id)
    LINK_CUSTOMER("text_2"),
    //合同名称(合同id)
    LINK_CONTRACT("text_3"),
    //回款计划编号
    PAYMENT_TASK_NO("serialNo"),
    //执行人，值有0、1、2三个，分别表示负责人、协同人、自定义执行人
    EXECUTOR("array_1"),
    //自定义执行人 里面的值就是具体的自定义执行者的值
    EXECUTOR_LINKED_TEXT("array_2"),
    //回款类型
    PAYMENT_TASK_TYPE("text_8"),
    //计划收款金额
    PAYMENT_TASK_NUM("num_1"),
    //预计回款时间
    EXECUTOR_TIME("date_1"),
    //提醒
    NOTIFY_TYPE("text_4"),
    //提醒时间
    NOTIFY_TIME("date_2"),
    //备注
    MEMO("text_10"),

    //系统消息
    SYSTEM_INFO("other_2"),
    //创建者id
    CREATOR_ID("creatorId"),
    //添加时间
    ADD_TIME("addTime"),
    //修改时间
    UPDATE_TIME("updateTime"),
    //回款状态
    STATUS("text_5"),
    //联系方式
    CONTACT_WAY("subForm_1"),
    //客户中文名称字段隐藏
    LINK_CUSTOMER_HIDE("text_6"),
    //合同中文名称字段隐藏
    LINK_CONTRACT_HIDE("text_7"),
    ;

    private final String attr;

    PaymentTaskBaseEnum(String attr) {
        this.attr = attr;
    }

    /**
     * 获取不可编辑的字段
     *
     * @return
     */
    public static List<String> getNoEditableList(){
        return Arrays.asList(LINK_CUSTOMER.attr, LINK_CONTRACT.attr,PAYMENT_TASK_NO.attr, EXECUTOR.attr, EXECUTOR_LINKED_TEXT.attr,PAYMENT_TASK_NUM.attr, EXECUTOR_TIME.attr,NOTIFY_TYPE.attr,NOTIFY_TIME.attr);
    }
}
